package dletc.thread;
/**
 * 方法二：
 
     第一步： 创建一个类，实现implements  Runnable接口
     第二步： 重写run()
     第三步：创建线程对象, 同时创建一线程对象，用自定对象当参数
     第四步：开启线程调用start();
     
 */
public class Demo02 {

	public static void main(String[] args) {
		
		//创建一个可运行的对象
		MyThread2 mt = new MyThread2();
		
		//将可运行对象封装成一个线程对象   **一个可运行对象，可以封装成多个线程对象**
		Thread t1 = new Thread(mt);
		Thread t2 = new Thread(mt);

		System.out.println(t1.getState());
		System.out.println(t2.getState());

		//上述代码合并
		//Thread t3 = new Thread(new MyThread2());
		
		t1.setName("线程1");
		t2.setName("线程2");
		
		t1.start();
		t2.start();
		System.out.println(t1.getState());
		System.out.println(t2.getState());
		
		for (int i = 1; i <= 100; i++) {
			System.out.println("主线程" + "-----------" + i);
		}
		
		/**
		 * 采用匿名内部类
		 */
			Thread t4 = new Thread(new Runnable() {
			
			@Override
			public void run() {
				
			}
		});
		

	}

}

//创建一个普通的类，实现接口了Runnable接口，就有线程功能，但是他里面不含有线程操作的所有方法
class MyThread2  implements Runnable{

	@Override
	public void run() {
		for (int i = 1; i <= 100; i++) {
			System.out.println(Thread.currentThread().getName() + "-----------" + i);
		}
		
	}

	
}
